Skip to content

Add optional math support for markdown #2708

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: next
Choose a base branch
from

Conversation

recmo
Copy link

@recmo recmo commented Nov 18, 2024

IMPORTANT: Please do not create a Pull Request adding a new feature without discussing it first.

The place to discuss new features is the forum: https://zola.discourse.group/
If you want to add a new feature, please open a thread there first in the feature requests section.

Sanity check:

  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

Code changes

(Delete or ignore this section for documentation changes)

  • Are you doing the PR on the next branch?

If the change is a new feature or adding to/changing an existing one:

  • Have you created/updated the relevant documentation page(s)?

This fixes #2019 without adding substantial complexity or dependencies. It optionally enables a common-mark extension available in pulldown-cmark.

This will correctly parse delimited math, and render html like <span class="math math-inline">\sum_i x_i<\span>.

To render the latex using Katex, include something like this in the header:

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css"
        integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+"
        crossorigin="anonymous">
    <script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js"
        integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg"
        crossorigin="anonymous"></script>
    <script defer>
        document.addEventListener("DOMContentLoaded", function () {
            const macros = {};
            for (let el of document.getElementsByClassName('math')) {
              katex.render(el.textContent, el, {
                output: 'html',
                throwOnError: false,
                displayMode: el.classList.contains('math-display'),
                macros,
              });
            }
        });
    </script>

Keats and others added 10 commits August 15, 2024 20:19
* feat: port zola release build to gh actions & support linux arm64

Signed-off-by: Henrik Gerdes <[email protected]>

* fix: add buildx support for multi-arch docker images

Signed-off-by: Henrik Gerdes <[email protected]>

* fix: pin gh release action to sha & allow pre-releases

Signed-off-by: Henrik Gerdes <[email protected]>

* fix: use env in gh action for linux arm build

Signed-off-by: Henrik Gerdes <[email protected]>

* chore: switch to dtolnay/rust-toolchain action for rust setup

Signed-off-by: Henrik Gerdes <[email protected]>

* fix: windows archive step

Signed-off-by: Henrik Gerdes <[email protected]>

---------

Signed-off-by: Henrik Gerdes <[email protected]>
Having a crate depend on files outside of its directory
breaks building Zola as a dependency using Nix
* Add pagination info to get_section

* Add documentation for pagination information

* Stick to section properties

`paginated` attributes removed
…nt (getzola#2688)

This adds semantic meaning to the footnotes organization and improves
accessibility by aiding disabled users who rely on assistive devices
such as screen readers which utilize semantic tags such as the footer
element in order to navigate properly.

The hr element is semantically defined as representing a paragraph-level
thematic break. Now that the footnotes are descendants of the footer
element, the hr element originally preceding the footnotes list is
no longer necessary (footnotes are no longer paragraph-level content)
and thus replaced. However, the footer element is given the class
"footnotes" to allow for styling, so the following CSS could be used to
provide a stylistically equivalent visible border separating the
footnotes from the content if so desired:

    .footnotes {
      border-top: 2px groove gray;
    }

Test snapshots are also updated to reflect the new footer elements.
@recmo recmo changed the title Recmo/enable math Add optional math support for markdown Nov 18, 2024
@recmo recmo force-pushed the recmo/enable-math branch from a52418a to b513f1f Compare November 18, 2024 15:24
@@ -45,6 +45,8 @@ pub struct Markdown {
pub external_links_no_referrer: bool,
/// Whether smart punctuation is enabled (changing quotes, dashes, dots etc in their typographic form)
pub smart_punctuation: bool,
/// Whether to enable latex math rendering
pub math: bool,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We want that to be an enum. Eventually (hopefully) there will be math rendering inside Zola (eg https://zola.discourse.group/t/a-simpler-katex-alternative-that-works-today/2156/3) so we will want to support classes/pre-render etc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants